package com.kfm.pm;

import com.kfm.am.Student;

import java.util.*;

public class TreeSetDemo {

    public static void main(String[] args) {
        TreeSet treeSet = new TreeSet();
        TreeSet treeSet1 = new TreeSet(new Comparator() {
            @Override
            public int compare(Object o1, Object o2) {
                if (o1.equals(o2)) {
                    return 0;
                }
                Game s1 = (Game) o1;
                Game s2 = (Game) o2;
                return s1.getStar() - s2.getStar() > 0 ? 1 : -1;
            }
        });
        //  如果比较器 还是自然排序 返回值是 0 就不放进去
        treeSet1.add(new Game("wzry", 1, 0));
        treeSet1.add(new Game("2k2023",5, 199));
        treeSet1.add(new Game("ys",3, 0));
        treeSet1.add(new Game("wy",3, 0));
//        Game hpjy = new Game("hpjy", 3, 0);
//        System.out.println(treeSet1.ceiling(hpjy)); // 大于等于hpjy的最小元素
//        System.out.println(treeSet1.floor(hpjy)); // 小于等于hpjy的最大元素
//        System.out.println(treeSet1.higher(hpjy)); // 大于hpjy的最小元素
//        System.out.println(treeSet1.lower(hpjy)); // 小于hpjy的最大元素
//        SortedSet sortedSet = treeSet1.headSet(hpjy); // 小于hpjy的所有集合元素
//        SortedSet sortedSet1 = treeSet1.headSet(hpjy, true); // 小于等于hpjy的所有集合元素
        NavigableSet navigableSet = treeSet1.descendingSet(); // 返回了TreeSet的降序的Set集合
        Iterator iterator1 = navigableSet.iterator();
        while (iterator1.hasNext()) {
            System.out.println(iterator1.next());
        }

//        Iterator iterator = treeSet1.descendingIterator(); // 降序
//        Iterator iterator = sortedSet1.iterator(); // 升序
//        while (iterator.hasNext()) {
//            System.out.println(iterator.next());
//        }
        // 要添加具备自然排序的元素
//        treeSet.add(1);
//        treeSet.add(12);
//        treeSet.add("yh");
//        treeSet.add("jwt");
//        treeSet.add("tjw");
//        treeSet.add("gy");
//        treeSet.add("lyq");
        // 需要元素具备自然排序的能力  implements Comparable 重写 compareTo 方法 告诉它按照哪个属性排序
//        System.out.println(treeSet.add(new Student("gy", 20)));
//        System.out.println(treeSet.add(new Student("tjw", 21)));
//        System.out.println(treeSet.add(new Student("yh", 22)));
//        System.out.println(treeSet.add(new Student("fhh", 22)));

//        Iterator iterator = treeSet.iterator();
//
//        while (iterator.hasNext()) {
//            System.out.println(iterator.next());
//        }
    }
}
